package utilidades;
import java.io.*;

/**Clase para copiar un fichero.
 * @author Iñigo
 *
 */
public class CopyFile{


	/** Metodo que recibe el nombre de dos ficheros, el cual copia todo el contenido del primer fichero en el segundo.
	 * @param srFile El string de donde hay que copiar.
	 * @param dtFile El string a donde hay que copiar.
	 */
	public static void copyfile(String srFile, String dtFile){
		try{
			File f1 = new File(srFile);
			File f2 = new File(dtFile);
			InputStream in = new FileInputStream(f1);

			//For Append the file.
			//  OutputStream out = new FileOutputStream(f2,true);

			//For Overwrite the file.
			OutputStream out = new FileOutputStream(f2);

			byte[] buf = new byte[1024];
			int len;
			while ((len = in.read(buf)) > 0){
				out.write(buf, 0, len);
			}
			in.close();
			out.close();
		}
		catch(FileNotFoundException ex){
			System.out.println(ex.getMessage() + " in the specified directory.");
			System.exit(0);
		}
		catch(IOException e){
			System.out.println(e.getMessage());  
		}
	}


	/**Main de prueba para comprobar el buen funcionamiento de la clase.
	 * @param args
	 */
	public static void main(String[] args){
		switch(args.length){
		case 0: System.out.println("File has not mentioned.");
		System.exit(0);
		case 1: System.out.println("Destination file has not mentioned.");
		System.exit(0);
		case 2: copyfile(args[0],args[1]);
		System.exit(0);
		default : System.out.println("Multiple files are not allow.");
		System.exit(0);
		}
	}
}